Software aging is degradation of an execution environment of software due to prolonged continuous operation of the software. Software aging progresses with time and leads to degradation of the program processing performance and an increase in the system failure rate. Most of the software aging problems are caused by defects of software (bugs in programs). A memory leak is a typical example of software aging which is caused by failure to release memory. When such a defect is found after the release of the software, system operation can be compromised, leading to decrease in reliability. It is therefore desirable to eliminate defects that can cause software aging as much as possible before the release of the software.
In order to detect software aging problems before the software is released, a load test is required in which the software is actually operated on a computer, workload is given to the software, and the operation of the software is observed. However, such load test is costly and time consuming because the load test requires a provision of an experimental environment for executing the testing. In particular, detection of software aging problems requires prolonged continuous operation and continuous monitoring. In order to increase the efficiency of load test for detecting software aging, a test method described in NPL 1 has been proposed.
NPL 1 describes a method for detecting software aging trends by comparing results of load test of a current version of software to be tested with results of load test of a past version of the same software. For example, if the past version does not exhibit an upward trend in memory consumption while the current version exhibits an upward trend in memory consumption, it can be determined that the current version has a high probability of containing defects that can cause software aging. Since the determination is made by comparison with past trends, signs of problems can be identified early before prolonged operation of the software.
Note that the term “software aging problem” as used in the description and the claims means the risk of software aging latent in software.